<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>图书馆数据可视化大屏</title>
    <!-- Bootstrap CSS -->
    <link href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/5.3.8/css/bootstrap.min.css" rel="stylesheet">
    <!-- Element UI -->
    <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/element-ui/2.15.14/theme-chalk/index.css">
    <!-- Font Awesome -->
    <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/font-awesome/7.0.0/css/all.min.css">
    <!-- ECharts -->
    <script src="https://cdn.bootcdn.net/ajax/libs/echarts/4.8.0/echarts.min.js"></script>
    <!-- Vue.js -->
    <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.7.14/vue.min.js"></script>
    <!-- Element UI -->
    <script src="https://cdn.bootcdn.net/ajax/libs/element-ui/2.15.14/index.min.js"></script>
    <style>
        :root {
            --primary: #4361ee;
            --secondary: #3f37c9;
            --accent: #4895ef;
            --light: #f8f9fa;
            --dark: #0a0a1a;
            --success: #4cc9f0;
            --neon-blue: #00f7ff;
            --neon-purple: #bd00ff;
        }

        body {
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
            background: linear-gradient(135deg, #0f0c29, #302b63, #24243e);
            color: var(--light);
            overflow-x: hidden;
            padding: 0;
            margin: 0;
        }

        .dashboard-container {
            padding: 20px;
            min-height: 100vh;
        }

        .header {
            text-align: center;
            margin-bottom: 30px;
            padding: 20px;
            background: rgba(10, 10, 30, 0.7);
            border-radius: 15px;
            box-shadow: 0 0 20px rgba(0, 247, 255, 0.3);
            border: 1px solid rgba(0, 247, 255, 0.2);
            position: relative;
            overflow: hidden;
        }

        .header::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 4px;
            background: linear-gradient(90deg, var(--neon-blue), var(--neon-purple));
            animation: headerGlow 2s infinite alternate;
        }

        @keyframes headerGlow {
            0% { box-shadow: 0 0 5px var(--neon-blue); }
            100% { box-shadow: 0 0 20px var(--neon-purple); }
        }

        .header h1 {
            font-size: 2.5rem;
            margin: 0;
            background: linear-gradient(90deg, var(--neon-blue), var(--neon-purple));
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            text-shadow: 0 0 10px rgba(0, 247, 255, 0.5);
        }

        .header p {
            font-size: 1.2rem;
            margin: 10px 0 0;
            color: #a0a0d0;
        }

        .stat-card {
            background: rgba(20, 20, 50, 0.7);
            border-radius: 15px;
            padding: 20px;
            margin-bottom: 25px;
            box-shadow: 0 0 15px rgba(0, 0, 0, 0.5);
            border: 1px solid rgba(100, 100, 255, 0.2);
            transition: all 0.3s ease;
            height: 100%;
            position: relative;
            overflow: hidden;
        }

        .stat-card:hover {
            transform: translateY(-5px);
            box-shadow: 0 10px 25px rgba(0, 247, 255, 0.3);
            border-color: rgba(0, 247, 255, 0.5);
        }

        .stat-card::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 3px;
            background: linear-gradient(90deg, var(--neon-blue), var(--neon-purple));
        }

        .stat-title {
            font-size: 1.2rem;
            margin-bottom: 15px;
            color: #a0a0d0;
            display: flex;
            align-items: center;
        }

        .stat-title i {
            margin-right: 10px;
            color: var(--neon-blue);
        }

        .stat-number {
            font-size: 2.5rem;
            font-weight: 700;
            background: linear-gradient(90deg, var(--neon-blue), var(--neon-purple));
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            margin-bottom: 10px;
        }

        .chart-container {
            background: rgba(20, 20, 50, 0.7);
            border-radius: 15px;
            padding: 20px;
            margin-bottom: 25px;
            box-shadow: 0 0 15px rgba(0, 0, 0, 0.5);
            border: 1px solid rgba(100, 100, 255, 0.2);
            height: 100%;
            position: relative;
            overflow: hidden;
        }

        .chart-container::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 3px;
            background: linear-gradient(90deg, var(--neon-blue), var(--neon-purple));
        }

        .chart-title {
            font-size: 1.3rem;
            margin-bottom: 20px;
            color: #e0e0ff;
            display: flex;
            align-items: center;
        }

        .chart-title i {
            margin-right: 10px;
            color: var(--neon-blue);
        }

        .chart-wrapper {
            height: 300px;
        }

        .grid-card {
            background: rgba(20, 20, 50, 0.7);
            border-radius: 15px;
            padding: 20px;
            margin-bottom: 25px;
            box-shadow: 0 0 15px rgba(0, 0, 0, 0.5);
            border: 1px solid rgba(100, 100, 255, 0.2);
            height: 100%;
            position: relative;
            overflow: hidden;
        }

        .grid-card::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 3px;
            background: linear-gradient(90deg, var(--neon-blue), var(--neon-purple));
        }

        .grid-title {
            font-size: 1.3rem;
            margin-bottom: 20px;
            color: #e0e0ff;
            display: flex;
            align-items: center;
        }

        .grid-title i {
            margin-right: 10px;
            color: var(--neon-blue);
        }

        .grid-content {
            height: 300px;
            overflow-y: auto;
        }

        .book-item {
            display: flex;
            align-items: center;
            padding: 10px;
            border-bottom: 1px solid rgba(100, 100, 255, 0.2);
            transition: all 0.3s ease;
        }

        .book-item:hover {
            background: rgba(100, 100, 255, 0.1);
            transform: translateX(5px);
        }

        .book-cover {
            width: 50px;
            height: 70px;
            background: linear-gradient(45deg, #ff9a9e, #fad0c4);
            border-radius: 5px;
            margin-right: 15px;
            display: flex;
            align-items: center;
            justify-content: center;
            color: white;
            font-size: 1.5rem;
        }

        .book-info {
            flex: 1;
        }

        .book-title {
            font-weight: 600;
            margin-bottom: 5px;
        }

        .book-author {
            font-size: 0.9rem;
            color: #a0a0d0;
        }

        .book-stats {
            display: flex;
            align-items: center;
        }

        .book-stats span {
            margin-right: 15px;
            font-size: 0.9rem;
        }

        .book-stats .borrowed {
            color: #4cc9f0;
        }

        .book-stats .returned {
            color: #4ade80;
        }

        .neon-text {
            color: var(--neon-blue);
            text-shadow: 0 0 10px var(--neon-blue);
        }

        .pulse {
            animation: pulse 2s infinite;
        }

        @keyframes pulse {
            0% { transform: scale(1); }
            50% { transform: scale(1.05); }
            100% { transform: scale(1); }
        }

        .glow {
            box-shadow: 0 0 15px rgba(0, 247, 255, 0.5);
        }

        .footer {
            text-align: center;
            padding: 20px;
            color: #a0a0d0;
            font-size: 0.9rem;
            margin-top: 20px;
        }

        .update-time {
            color: var(--neon-blue);
            font-weight: 600;
        }

        @media (max-width: 768px) {
            .header h1 {
                font-size: 1.8rem;
            }
            
            .stat-number {
                font-size: 2rem;
            }
            
            .chart-wrapper {
                height: 250px;
            }
        }
    </style>
</head>
<body>
    <div id="app">
        <div class="dashboard-container">
            <!-- 头部标题 -->
            <div class="header">
                <h1><i class="fas fa-book-reader me-3"></i>城市图书馆数据可视化大屏</h1>
                <p>实时监控图书馆运营数据，洞察读者行为趋势</p>
            </div>

            <!-- 统计数据概览 -->
            <div class="row">
                <div class="col-xl-3 col-md-6">
                    <div class="stat-card pulse">
                        <div class="stat-title">
                            <i class="fas fa-users"></i>
                            <span>今日人流量</span>
                        </div>
                        <div class="stat-number">{{ stats.visitors }}</div>
                        <div class="text-success">
                            <i class="fas fa-arrow-up"></i> 12.5% 同比增长
                        </div>
                    </div>
                </div>
                <div class="col-xl-3 col-md-6">
                    <div class="stat-card pulse">
                        <div class="stat-title">
                            <i class="fas fa-book"></i>
                            <span>今日借阅量</span>
                        </div>
                        <div class="stat-number">{{ stats.borrowed }}</div>
                        <div class="text-success">
                            <i class="fas fa-arrow-up"></i> 8.3% 同比增长
                        </div>
                    </div>
                </div>
                <div class="col-xl-3 col-md-6">
                    <div class="stat-card pulse">
                        <div class="stat-title">
                            <i class="fas fa-book-open"></i>
                            <span>馆藏总量</span>
                        </div>
                        <div class="stat-number">{{ stats.collection }}</div>
                        <div class="text-info">
                            <i class="fas fa-plus-circle"></i> 新增 120 本
                        </div>
                    </div>
                </div>
                <div class="col-xl-3 col-md-6">
                    <div class="stat-card pulse">
                        <div class="stat-title">
                            <i class="fas fa-coins"></i>
                            <span>图书价值</span>
                        </div>
                        <div class="stat-number">¥{{ stats.value }}</div>
                        <div class="text-warning">
                            <i class="fas fa-arrow-up"></i> ¥15,000 新增
                        </div>
                    </div>
                </div>
            </div>

            <!-- 图表区域 -->
            <div class="row">
                <!-- 人流量趋势图 -->
                <div class="col-xl-6">
                    <div class="chart-container">
                        <div class="chart-title">
                            <i class="fas fa-chart-line"></i>
                            <span>人流量趋势 (近7天)</span>
                        </div>
                        <div class="chart-wrapper" id="visitorsChart"></div>
                    </div>
                </div>

                <!-- 借阅量趋势图 -->
                <div class="col-xl-6">
                    <div class="chart-container">
                        <div class="chart-title">
                            <i class="fas fa-chart-bar"></i>
                            <span>图书借阅趋势 (近7天)</span>
                        </div>
                        <div class="chart-wrapper" id="borrowChart"></div>
                    </div>
                </div>

                <!-- 图书分类统计 -->
                <div class="col-xl-6">
                    <div class="chart-container">
                        <div class="chart-title">
                            <i class="fas fa-pie-chart"></i>
                            <span>图书分类统计</span>
                        </div>
                        <div class="chart-wrapper" id="categoryChart"></div>
                    </div>
                </div>

                <!-- 图书价值波动 -->
                <div class="col-xl-6">
                    <div class="chart-container">
                        <div class="chart-title">
                            <i class="fas fa-chart-area"></i>
                            <span>图书价值波动 (近30天)</span>
                        </div>
                        <div class="chart-wrapper" id="valueChart"></div>
                    </div>
                </div>
            </div>

            <!-- 数据列表区域 -->
            <div class="row">
                <!-- 热门借阅图书 -->
                <div class="col-xl-6">
                    <div class="grid-card">
                        <div class="grid-title">
                            <i class="fas fa-fire"></i>
                            <span>热门借阅图书 Top 10</span>
                        </div>
                        <div class="grid-content">
                            <div class="book-item" v-for="(book, index) in topBooks" :key="index">
                                <div class="book-cover" :style="{background: book.color}">
                                    <i :class="book.icon"></i>
                                </div>
                                <div class="book-info">
                                    <div class="book-title">{{ book.title }}</div>
                                    <div class="book-author">{{ book.author }}</div>
                                </div>
                                <div class="book-stats">
                                    <span class="borrowed"><i class="fas fa-book"></i> {{ book.borrowed }}</span>
                                    <span class="returned"><i class="fas fa-undo"></i> {{ book.returned }}</span>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>

                <!-- 最新出入库图书 -->
                <div class="col-xl-6">
                    <div class="grid-card">
                        <div class="grid-title">
                            <i class="fas fa-history"></i>
                            <span>最新出入库图书</span>
                        </div>
                        <div class="grid-content">
                            <div class="book-item" v-for="(book, index) in recentBooks" :key="index">
                                <div class="book-cover" :style="{background: book.color}">
                                    <i :class="book.icon"></i>
                                </div>
                                <div class="book-info">
                                    <div class="book-title">{{ book.title }}</div>
                                    <div class="book-author">{{ book.author }}</div>
                                </div>
                                <div class="book-stats">
                                    <span :class="book.type === '入库' ? 'text-success' : 'text-warning'">
                                        <i :class="book.type === '入库' ? 'fas fa-arrow-down' : 'fas fa-arrow-up'"></i> 
                                        {{ book.type }}
                                    </span>
                                    <span class="text-muted">{{ book.date }}</span>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <!-- 页脚 -->
            <div class="footer">
                <p>城市图书馆数据可视化大屏 | 数据更新时间: <span class="update-time">{{ updateTime }}</span></p>
                <p>© 2023 城市图书馆. 打造书香城市，传播知识文化。</p>
            </div>
        </div>
    </div>

    <script>
        new Vue({
            el: '#app',
            data() {
                return {
                    stats: {
                        visitors: '1,248',
                        borrowed: '867',
                        collection: '520,398',
                        value: '12,860,000'
                    },
                    topBooks: [
                        { title: '百年孤独', author: '加西亚·马尔克斯', borrowed: 128, returned: 96, color: 'linear-gradient(45deg, #ff9a9e, #fad0c4)', icon: 'fas fa-book' },
                        { title: '人类简史', author: '尤瓦尔·赫拉利', borrowed: 112, returned: 89, color: 'linear-gradient(45deg, #a1c4fd, #c2e9fb)', icon: 'fas fa-book' },
                        { title: '三体', author: '刘慈欣', borrowed: 98, returned: 76, color: 'linear-gradient(45deg, #d4fc79, #96e6a1)', icon: 'fas fa-book' },
                        { title: '活着', author: '余华', borrowed: 87, returned: 65, color: 'linear-gradient(45deg, #ffecd2, #fcb69f)', icon: 'fas fa-book' },
                        { title: '明朝那些事儿', author: '当年明月', borrowed: 76, returned: 58, color: 'linear-gradient(45deg, #ff9a9e, #fad0c4)', icon: 'fas fa-book' },
                        { title: '白夜行', author: '东野圭吾', borrowed: 69, returned: 52, color: 'linear-gradient(45deg, #a1c4fd, #c2e9fb)', icon: 'fas fa-book' },
                        { title: '追风筝的人', author: '卡勒德·胡赛尼', borrowed: 62, returned: 48, color: 'linear-gradient(45deg, #d4fc79, #96e6a1)', icon: 'fas fa-book' },
                        { title: '解忧杂货店', author: '东野圭吾', borrowed: 58, returned: 45, color: 'linear-gradient(45deg, #ffecd2, #fcb69f)', icon: 'fas fa-book' },
                        { title: '小王子', author: '安托万·德·圣-埃克苏佩里', borrowed: 54, returned: 42, color: 'linear-gradient(45deg, #ff9a9e, #fad0c4)', icon: 'fas fa-book' },
                        { title: '围城', author: '钱钟书', borrowed: 51, returned: 39, color: 'linear-gradient(45deg, #a1c4fd, #c2e9fb)', icon: 'fas fa-book' }
                    ],
                    recentBooks: [
                        { title: '数据结构与算法', author: '严蔚敏', type: '入库', date: '2023-06-15', color: 'linear-gradient(45deg, #ff9a9e, #fad0c4)', icon: 'fas fa-book' },
                        { title: 'Python编程从入门到实践', author: '埃里克·马瑟斯', type: '出库', date: '2023-06-15', color: 'linear-gradient(45deg, #a1c4fd, #c2e9fb)', icon: 'fas fa-book' },
                        { title: '深度学习', author: 'Ian Goodfellow', type: '入库', date: '2023-06-14', color: 'linear-gradient(45deg, #d4fc79, #96e6a1)', icon: 'fas fa-book' },
                        { title: '设计模式', author: 'GoF', type: '出库', date: '2023-06-14', color: 'linear-gradient(45deg, #ffecd2, #fcb69f)', icon: 'fas fa-book' },
                        { title: '计算机网络', author: '谢希仁', type: '入库', date: '2023-06-13', color: 'linear-gradient(45deg, #ff9a9e, #fad0c4)', icon: 'fas fa-book' },
                        { title: '操作系统概念', author: 'Abraham Silberschatz', type: '出库', date: '2023-06-13', color: 'linear-gradient(45deg, #a1c4fd, #c2e9fb)', icon: 'fas fa-book' },
                        { title: '编译原理', author: 'Alfred Aho', type: '入库', date: '2023-06-12', color: 'linear-gradient(45deg, #d4fc79, #96e6a1)', icon: 'fas fa-book' },
                        { title: '软件工程', author: 'Roger Pressman', type: '出库', date: '2023-06-12', color: 'linear-gradient(45deg, #ffecd2, #fcb69f)', icon: 'fas fa-book' }
                    ],
                    updateTime: new Date().toLocaleString('zh-CN')
                }
            },
            mounted() {
                this.initCharts();
                this.updateTime = new Date().toLocaleString('zh-CN');
                
                // 模拟数据实时更新
                setInterval(() => {
                    this.updateTime = new Date().toLocaleString('zh-CN');
                }, 60000);
            },
            methods: {
                initCharts() {
                    // 人流量趋势图
                    const visitorsChart = echarts.init(document.getElementById('visitorsChart'));
                    visitorsChart.setOption({
                        tooltip: {
                            trigger: 'axis',
                            axisPointer: {
                                type: 'shadow'
                            }
                        },
                        grid: {
                            left: '3%',
                            right: '4%',
                            bottom: '3%',
                            containLabel: true
                        },
                        xAxis: [
                            {
                                type: 'category',
                                data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日'],
                                axisTick: {
                                    alignWithLabel: true
                                },
                                axisLabel: {
                                    color: '#a0a0d0'
                                },
                                axisLine: {
                                    lineStyle: {
                                        color: '#4361ee'
                                    }
                                }
                            }
                        ],
                        yAxis: [
                            {
                                type: 'value',
                                axisLabel: {
                                    color: '#a0a0d0'
                                },
                                splitLine: {
                                    lineStyle: {
                                        color: 'rgba(100, 100, 255, 0.2)'
                                    }
                                }
                            }
                        ],
                        series: [
                            {
                                name: '人流量',
                                type: 'bar',
                                barWidth: '60%',
                                data: [820, 932, 901, 934, 1290, 1330, 1320],
                                itemStyle: {
                                    color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                                        { offset: 0, color: '#4361ee' },
                                        { offset: 1, color: '#4895ef' }
                                    ])
                                },
                                emphasis: {
                                    itemStyle: {
                                        color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                                            { offset: 0, color: '#4895ef' },
                                            { offset: 1, color: '#4361ee' }
                                        ])
                                    }
                                }
                            }
                        ]
                    });

                    // 借阅量趋势图
                    const borrowChart = echarts.init(document.getElementById('borrowChart'));
                    borrowChart.setOption({
                        tooltip: {
                            trigger: 'axis'
                        },
                        grid: {
                            left: '3%',
                            right: '4%',
                            bottom: '3%',
                            containLabel: true
                        },
                        xAxis: {
                            type: 'category',
                            boundaryGap: false,
                            data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日'],
                            axisLabel: {
                                color: '#a0a0d0'
                            },
                            axisLine: {
                                lineStyle: {
                                    color: '#4361ee'
                                }
                            }
                        },
                        yAxis: {
                            type: 'value',
                            axisLabel: {
                                color: '#a0a0d0'
                            },
                            splitLine: {
                                lineStyle: {
                                    color: 'rgba(100, 100, 255, 0.2)'
                                }
                            }
                        },
                        series: [
                            {
                                name: '借阅量',
                                type: 'line',
                                stack: '总量',
                                data: [120, 132, 101, 134, 90, 230, 210],
                                smooth: true,
                                lineStyle: {
                                    width: 3,
                                    color: new echarts.graphic.LinearGradient(0, 0, 1, 0, [
                                        { offset: 0, color: '#4361ee' },
                                        { offset: 1, color: '#4895ef' }
                                    ])
                                },
                                areaStyle: {
                                    opacity: 0.8,
                                    color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                                        { offset: 0, color: 'rgba(67, 97, 238, 0.8)' },
                                        { offset: 1, color: 'rgba(72, 149, 239, 0.1)' }
                                    ])
                                },
                                emphasis: {
                                    focus: 'series'
                                }
                            }
                        ]
                    });

                    // 图书分类统计
                    const categoryChart = echarts.init(document.getElementById('categoryChart'));
                    categoryChart.setOption({
                        tooltip: {
                            trigger: 'item'
                        },
                        legend: {
                            bottom: '0',
                            left: 'center',
                            textStyle: {
                                color: '#a0a0d0'
                            }
                        },
                        series: [
                            {
                                name: '图书分类',
                                type: 'pie',
                                radius: ['40%', '70%'],
                                avoidLabelOverlap: false,
                                itemStyle: {
                                    borderRadius: 10,
                                    borderColor: '#0a0a1a',
                                    borderWidth: 2
                                },
                                label: {
                                    show: false,
                                    position: 'center'
                                },
                                emphasis: {
                                    label: {
                                        show: true,
                                        fontSize: '16',
                                        fontWeight: 'bold',
                                        color: '#e0e0ff'
                                    }
                                },
                                labelLine: {
                                    show: false
                                },
                                data: [
                                    { value: 1048, name: '文学类', itemStyle: { color: '#4361ee' } },
                                    { value: 735, name: '科技类', itemStyle: { color: '#4895ef' } },
                                    { value: 580, name: '历史类', itemStyle: { color: '#4cc9f0' } },
                                    { value: 484, name: '艺术类', itemStyle: { color: '#f72585' } },
                                    { value: 300, name: '儿童类', itemStyle: { color: '#7209b7' } }
                                ]
                            }
                        ]
                    });

                    // 图书价值波动图
                    const valueChart = echarts.init(document.getElementById('valueChart'));
                    const valueData = [];
                    const valueDates = [];
                    for (let i = 30; i >= 0; i--) {
                        const date = new Date();
                        date.setDate(date.getDate() - i);
                        valueDates.push(`${date.getMonth() + 1}-${date.getDate()}`);
                        valueData.push(Math.floor(Math.random() * 1000000) + 12000000);
                    }

                    valueChart.setOption({
                        tooltip: {
                            trigger: 'axis'
                        },
                        grid: {
                            left: '3%',
                            right: '4%',
                            bottom: '15%',
                            containLabel: true
                        },
                        xAxis: {
                            type: 'category',
                            data: valueDates,
                            axisLabel: {
                                color: '#a0a0d0',
                                fontSize: 10
                            },
                            axisLine: {
                                lineStyle: {
                                    color: '#4361ee'
                                }
                            }
                        },
                        yAxis: {
                            type: 'value',
                            axisLabel: {
                                color: '#a0a0d0',
                                formatter: function(value) {
                                    return (value / 10000).toFixed(0) + '万';
                                }
                            },
                            splitLine: {
                                lineStyle: {
                                    color: 'rgba(100, 100, 255, 0.2)'
                                }
                            }
                        },
                        series: [
                            {
                                name: '图书价值',
                                type: 'line',
                                data: valueData,
                                smooth: true,
                                lineStyle: {
                                    width: 3,
                                    color: new echarts.graphic.LinearGradient(0, 0, 1, 0, [
                                        { offset: 0, color: '#f72585' },
                                        { offset: 1, color: '#4361ee' }
                                    ])
                                },
                                areaStyle: {
                                    opacity: 0.5,
                                    color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                                        { offset: 0, color: 'rgba(247, 37, 133, 0.5)' },
                                        { offset: 1, color: 'rgba(67, 97, 238, 0.1)' }
                                    ])
                                },
                                symbol: 'circle',
                                symbolSize: 6,
                                itemStyle: {
                                    color: '#4cc9f0'
                                }
                            }
                        ]
                    });

                    // 窗口大小改变时重置图表大小
                    window.addEventListener('resize', () => {
                        visitorsChart.resize();
                        borrowChart.resize();
                        categoryChart.resize();
                        valueChart.resize();
                    });
                }
            }
        });
    </script>
</body>
</html>